package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Scrpra01A
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Scrpra01A {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Scrpra01A.jsp";
	private String apelidoalcunhas = "";
	private String nomemae = "";
	private String naturalidade = "";
	private int numero = 0;
	private String dataCorrente;
	private String nomeClasse;
	private String horaCorrente;
	private String texto1;
	private String texto2;
	private String texto3;
	private String id;
	private String im;
	private String ia;
	private String nomei;
	private String nomer;
	private String fdc;
	private int aaaammdd;
	public String nome;
	public String idma;
	private String[] jObservacoez = new String[151];
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "numero";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao; // Classes views
	private String jProgramaj;
	private String jEmpresaj;
	private String jVersaoj;

	// Classes includes
	public Scrpra01A() {
		inicializar(false);
	}

	public Scrpra01A(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			dataCorrente = "";
			texto1 = "";
			texto2 = "";
			texto3 = "";
			fdc = "";
			aaaammdd = 0;
			jObservacoez = new String[151];
			jVersaoj = sessao.getScrg001().getWVersaow();
			jEmpresaj = sessao.getScrg001().getWEmpresaw();
			jProgramaj = sessao.getScrg001().getWProgramaw();
		}
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
		dataCorrente = new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime()); // *DATE
		nomeClasse = this.getClass().getSimpleName(); // *PROGRAM
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		return true;
	}

	public String getTexto1() {
		return texto1;
	}

	public void setTexto1(String texto1) {
		this.texto1 = texto1;
	}

	public String getTexto2() {
		return texto2;
	}

	public void setTexto2(String texto2) {
		this.texto2 = texto2;
	}

	public String getTexto3() {
		return texto3;
	}

	public void setTexto3(String texto3) {
		this.texto3 = texto3;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getIm() {
		return im;
	}

	public void setIm(String im) {
		this.im = im;
	}

	public String getIa() {
		return ia;
	}

	public void setIa(String ia) {
		this.ia = ia;
	}

	public String getNomei() {
		return nomei;
	}

	public void setNomei(String nomei) {
		this.nomei = nomei;
	}

	public String getNomer() {
		return nomer;
	}

	public void setNomer(String nomer) {
		this.nomer = nomer;
	}

	public String getFdc() {
		return fdc;
	}

	public void setFdc(String fdc) {
		this.fdc = fdc;
	}

	public int getAaaammdd() {
		return aaaammdd;
	}

	public void setAaaammdd(int aaaammdd) {
		this.aaaammdd = aaaammdd;
	}

	public String[] getJobservacoez() {
		return jObservacoez;
	}

	public void setJobservacoez(String[] jObservacoez) {
		this.jObservacoez = jObservacoez;
	}

	public String getJobservacoez(int index) {
		return jObservacoez[index];
	}

	public void setJobservacoez(int index, String jObservacoez) {
		this.jObservacoez[index] = jObservacoez;
	} // /

	public String getIdma() {
		return this.id + this.im + this.ia;
	}

	public void setIdma(String idma) {
		this.idma = idma;
		this.id = UtilBean.subStr(idma, 0, 2);
		this.im = UtilBean.subStr(idma, 2, 2);
		this.ia = UtilBean.subStr(idma, 4, 4);
	} // /

	public String getNome() {
		return this.nomei + this.nomer;
	}

	public void setNome(String nome) {
		this.nome = nome;
		this.nomei = UtilBean.subStr(nome, 0, 47);
		this.nomer = UtilBean.subStr(nome, 47, 13);
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getNomeClasse() {
		return nomeClasse;
	}

	public void setNomeClasse(String nomeClasse) {
		this.nomeClasse = nomeClasse;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}

	public String getApelidoalcunhas() {
		return apelidoalcunhas;
	}

	public void setApelidoalcunhas(String apelidoalcunhas) {
		this.apelidoalcunhas = apelidoalcunhas;
	}

	public String getNomemae() {
		return nomemae;
	}

	public void setNomemae(String nomemae) {
		this.nomemae = nomemae;
	}

	public String getNaturalidade() {
		return naturalidade;
	}

	public void setNaturalidade(String naturalidade) {
		this.naturalidade = naturalidade;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(String dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public String getjProgramaj() {
		return jProgramaj;
	}

	public void setjProgramaj(String jProgramaj) {
		this.jProgramaj = jProgramaj;
	}

	public String getjEmpresaj() {
		return jEmpresaj;
	}

	public void setjEmpresaj(String jEmpresaj) {
		this.jEmpresaj = jEmpresaj;
	}

	public String getjVersaoj() {
		return jVersaoj;
	}

	public void setjVersaoj(String jVersaoj) {
		this.jVersaoj = jVersaoj;
	}

}
